UCSD Pascal
UCSD Pascal | |
---|---|
![]() | |
![]() Экран Редактора в UCSD p-System , Apple II | |
Тип | высокоуровневый язык программирования и язык программирования |
Разработчики | Калифорнийский университет в Сан-Диего, SofTech, Pecan |
Языки интерфейса | английский |
Первый выпуск | 1977 |
Аппаратные платформы | Apple II, DEC PDP-11, Zilog Z80, MOS 6502, Motorola 68000, x86, Pascal MicroEngine |
Последняя версия | Version IV |
UCSD Pascal — диалект языка программирования Паскаль.
Во второй половине 1970-х годов в Университете Сан-Диего (Калифорния, США) была разработана система UCSD p-System, которая включала в себя компилятор с языка Паскаль в переносимый p-код (сама идея компиляции в p-код была заимствована из более ранней системы Pascal-P). Первой получившей распространение за пределами университета версией была версия I.3, выпущенная в августе 1977 года[1].
Особенности языка
[править | править код]В UCSD Pascal было впервые для языка Паскаль реализовано несколько важных расширений, таких как модули, являющиеся единицами компиляции, а также строки символов переменной длины. Кроме того, поддерживались распространённые к тому времени расширения стандарта языка Паскаль, такие как директивы трансляции в псевдокомментариях, указание фактического имени файла при его открытии, обработка ошибок ввода-вывода, необязательность перечисления файлов в заголовке программы и т. п. Впоследствии основные коммерческие реализации языка Паскаль основывались на этой модификации Паскаля, прежде всего Object Pascal фирмы Apple и Turbo Pascal фирмы Borland.
Максимальная длина строки символов в UCSD Pascal, как и в более поздних диалектах 1980-х годов, составляла 255 символов, но по умолчанию в UCSD Pascal использовалась длина 80 символов.
Поддерживались нетипизированные файлы и соответствующие процедуры blockread и blockwrite.
Избыточно ресурсоёмкое на тогдашних аппаратных средствах управление памятью в куче при помощи процедур new и dispose в UCSD Pascal было заменено на более эффективное, но менее удобное и провоцирующее ошибки стековое управление динамической памятью (процедура dispose была пустой, текущий указатель стека динамических переменных запоминался при помощи процедуры mark и восстанавливался при помощи процедуры release, освобождая всю память, выделенную после соответствующего вызова mark).
Аналогично строковому типу string [n], поддерживался двоично-десятичный тип данных integer [n] с заданным количеством десятичных цифр.
Интересной особенностью диалекта UCSD Pascal был действовавший по умолчанию запрет на использование оператора goto (если не был указан специальный режим трансляции {$G+}, то оператор goto считался ошибкой).
Модули
[править | править код]В обзорных статьях иногда встречается утверждение, что концепция модулей в UCSD Pascal была взята из проекта языка Ада. Но разработчик UCSD Pascal Кеннет Боулз пишет, что напротив, модули в UCSD Pascal послужили прообразом аналогичного механизма пакетов в Аде[2], начало разработки которой было положено в 1977 году.
Реализации
[править | править код]Широкое распространение в конце 1970-х — начале 1980-х годов получила реализация UCSD Pascal II.1 на компьютере Apple II с процессором 6502, распространявшаяся по лицензии фирмой Apple Computer под торговой маркой Apple Pascal и с собственной нумерацией версий 1.0-1.3 (но среди пользователей более упоминаемая всё же как UCSD Pascal). В этой реализации были доступны дополнительные модули AppleStuff с различными системными вызовами (работа с клавиатурой, звуком и т. д.) и TurtleGraphics с пакетом черепашьей графики[чем?]. В Болгарии была произведена локализация Apple Pascal для компьютера Правец-82, данный продукт применялся в болгарской образовательной программе, использовавшейся также в СССР в 1980-х годах.
Последняя коммерческая версия компилятора UCSD Pascal распространялась фирмой Cabot Software под названием P-Code Pascal вплоть до 2001 года и имела реализации для платформ Windows, MS DOS, Macintosh, OS/2, RS/6000, Power PC, ARM, SCO UNIX, Interactive UNIX, Linux, DEC VAX, AIX, Hitachi SH. P-Code Pascal включал средства многозадачности и объектно-ориентированного программирования[3].
Примечания
[править | править код]- ↑ THE UCSD P-SYSTEM MUSEUM . Дата обращения: 5 октября 2009. Архивировано 17 февраля 2015 года.
- ↑ Файл с сайта Кеента Боулза www.kenbowles.net, Some Insights for UCSD Pascal Generation Архивная копия от 24 февраля 2021 на Wayback Machine на сайте retro8bits.com
- ↑ Cabot's P-Code Pascal . Дата обращения: 10 октября 2009. Архивировано 5 декабря 2008 года.
Ссылки
[править | править код]- Руслан Богатырев. Летопись языков Паскаль, Мир ПК, № 04/2001
- Аладжем М. А., Аладжем П. А. Паскал за персонални компютри. — София: Державно издателство «Техника», 1986. 240 с. (болг.) (описание реализации языка UCSD Pascal для компьютера Правец-82, аналог Apple II.
- На английском языке
- UCSD PASCAL System II.0 User's Manual March 1979
- UCSD files, файлы, включая компилятор
- UCSD Pascal and the PC Revolutionby, Christine Foster, USCD Alumni
- UCSD Pascal Reunion Symposium Архивная копия от 3 октября 2009 на Wayback Machine, Jacobs School Engineering, oct.2004,
- The UCSD P-System Museum
- Pascal for small machines, retro8bits.com
- UCSD Pasca, Yahoo! groups
- Here did the idea for the Java virtual machine come from?, Answer to the question Gosling